<?xml version="1.0"?>
<doc>
    <assembly>
        <name>AForge.Robotics.Lego</name>
    </assembly>
    <members>
        <member name="T:AForge.Robotics.Lego.Internals.RCXCommand">
            <summary>
            Enumeration of commands supported by Lego Mindstorms RXT brick.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.IsAlive">
            <summary>
            Check whether or not the RCX is alive.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.PlaySound">
            <summary>
            Play one of defined sounds.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.PlayTone">
            <summary>
            Play tone of specified frequency.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.GetVersions">
            <summary>
            Get ROM and firmware versions.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.GetBatteryPower">
            <summary>
            Get battery power.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetTime">
            <summary>
            Set time displayed on RCX brick.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.PowerOff">
            <summary>
            Turm off RCX brick.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.GetValue">
            <summary>
            Get value.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetSensorType">
            <summary>
            Set sensor type.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetSensorMore">
            <summary>
            Set sensor mode.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.ClearSensorValue">
            <summary>
            Clear sensor value.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetTransmitterRange">
            <summary>
            Set IR transmiter's range.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetMotorOnOff">
            <summary>
            Turn on/off motor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetMotorPower">
            <summary>
            Set motor's power.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.RCXCommand.SetMotorDirection">
            <summary>
            Set motor's direction
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.RCXBrick">
             <summary>
             Manipulation of Lego Mindstorms RCX device.
             </summary>
             
             <remarks>
             <para>The class allows to manipulate with Lego Mindstorms RCX device,
             setting its motors' state, getting information about sensors'
             values and performing some other manipulations.</para>
             <para><img src="img/robotics/rcx.jpg" width="312" height="251"/></para>
             
             <para><note>The class supports both types of IR towers - USB and serial (see
             <see cref="T:AForge.Robotics.Lego.RCXBrick.IRTowerType"/>).</note></para>
             
             <para><note>The class uses GhostAPI to communicate with Lego RCX device, so its
             libraries (GhostAPI.dll, PbkComm32.dll and PbkUsbPort.dll) should be placed into applications folder.</note></para>
             
             <para>Sample usage:</para>
             <code>
             // create an instance of RCX brick
             RCXBrick rcx = new RCXBrick( );
             // connect to the device
             if ( rcx.Connect( RCXBrick.IRTowerType.USB ) )
             {
                 // set forward direction of motor A
                 rcx.SetMotorDirection( RCXBrick.Motor.A, true );
                 // set power of motor
                 rcx.SetMotorPower( RCXBrick.Motor.A, 1 );
                 // turm motor on
                 rcx.SetMotorOn( RCXBrick.Motor.A, true );
                 // ...
                 // turn off motors A, B and C
                 rcx.SetMotorOn( RCXBrick.Motor.ABC, false );
             
                 // get first sensor's value
                 short value;
            
                 if ( rcx.GetSensorValue( RCXBrick.Sensor.First, out value ) )
                 {
                     // ...
                 }
                 // ...
             }
             </code>
             
             </remarks>
             
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.RCXBrick"/> class.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.Finalize">
            <summary>
            Destroys the instance of the <see cref="T:AForge.Robotics.Lego.RCXBrick"/> class.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.Connect(AForge.Robotics.Lego.RCXBrick.IRTowerType)">
            <summary>
            Connect to Lego RCX brick.
            </summary>
            
            <param name="towerType">Type of IR tower to use for communication with RCX brick.</param>
            
            <returns>Returns <b>true</b> on successful connection or <b>false</b>
            otherwise.</returns>
            
            <remarks>If connection to RCX brick was established before the call, existing connection will be reused.
            If it is required to force reconnection, then <see cref="M:AForge.Robotics.Lego.RCXBrick.Disconnect"/> method should be called before.
            </remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.Disconnect">
            <summary>
            Disconnnect from Lego RCX brick.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.IsAlive">
            <summary>
            Check if the RCX brick is alive and responds to messages.
            </summary>
            
            <returns>Returns <b>true</b> if device is alive or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.PlaySound(AForge.Robotics.Lego.RCXBrick.SoundType)">
            <summary>
            Play one of supported sounds.
            </summary>
            
            <param name="type">Sound type to play.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.PlayTone(System.Int16,System.Byte)">
            <summary>
            Play tone of specified frequency.
            </summary>
            
            <param name="frequency">Tone frequency in Hz.</param>
            <param name="duration">Tone duration in 1/100ths of a second.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.GetVersion(System.String@,System.String@)">
            <summary>
            Get version information of RCX brick.
            </summary>
            
            <param name="romVersion">ROM version number.</param>
            <param name="firmwareVersion">Firmware version number.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.GetBatteryPower(System.Int32@)">
            <summary>
            Get battery power of RCX brick.
            </summary>
            
            <param name="power">RCX brick's battery power in millivolts.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.SetTime(System.Byte,System.Byte)">
            <summary>
            Set current time for the RCX brick.
            </summary>
            
            <param name="hours">Hours, [0..23].</param>
            <param name="minutes">Minutes, [0..59].</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.PowerOff">
            <summary>
            Turn off the RCX brick.
            </summary>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.GetSensorValue(AForge.Robotics.Lego.RCXBrick.Sensor,System.Int16@)">
            <summary>
            Get sensor's value.
            </summary>
            
            <param name="sensor">Sensor to get value of.</param>
            <param name="value">Retrieved sensor's value (units depend on current
            <see cref="T:AForge.Robotics.Lego.RCXBrick.SensorType">sensor's type</see> and <see cref="T:AForge.Robotics.Lego.RCXBrick.SensorMode">mode</see>).</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.SetSensorType(AForge.Robotics.Lego.RCXBrick.Sensor,AForge.Robotics.Lego.RCXBrick.SensorType)">
            <summary>
            Set sensor's type.
            </summary>
            
            <param name="sensor">Sensor to set type of.</param>
            <param name="type">Sensor type to set.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.SetSensorMode(AForge.Robotics.Lego.RCXBrick.Sensor,AForge.Robotics.Lego.RCXBrick.SensorMode)">
            <summary>
            Set sensor's mode.
            </summary>
            
            <param name="sensor">Sensor to set mode of.</param>
            <param name="mode">Sensor mode to set.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.ClearSensor(AForge.Robotics.Lego.RCXBrick.Sensor)">
            <summary>
            Clear the counter associated with the specified sensor by setting it to a value of zero.
            </summary>
            
            <param name="sensor">Sensor to clear value of.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.SetMotorOn(AForge.Robotics.Lego.RCXBrick.Motor,System.Boolean)">
            <summary>
            Turn on/off specified motors.
            </summary>
            
            <param name="motors">Motors to turn on/off.</param>
            <param name="on">True to turn motors on, otherwise false.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.SetMotorPower(AForge.Robotics.Lego.RCXBrick.Motor,System.Byte)">
            <summary>
            Set power of specified motors.
            </summary>
            
            <param name="motors">Motors to set power of.</param>
            <param name="power">Power level to set, [0..7].</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.SetMotorDirection(AForge.Robotics.Lego.RCXBrick.Motor,System.Boolean)">
            <summary>
            Set direction of specified motors.
            </summary>
            
            <param name="motors">Motors to set direction of.</param>
            <param name="isForward">True to set forward direction, false to set backward.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.SetTransmitterRange(System.Boolean)">
            <summary>
            Set IR transmitter's range.
            </summary>
            
            <param name="isLongRange">True if long range should be set, otherwise false.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.RCXBrick.SendCommand(System.Byte[],System.Byte[],System.Int32)">
            <summary>
            Send command to Lego RCX brick and read reply.
            </summary>
            
            <param name="command">Command to send.</param>
            <param name="reply">Buffer to receive reply into.</param>
            <param name="expectedReplyLen">Expected reply length.</param>
            
            <returns>Returns <b>true</b> if the command was sent successfully and reply was
            received, otherwise <b>false</b>.</returns>
            
            <exception cref="T:System.NullReferenceException">Communication can not be performed, because connection with
            RCX brick was not established yet.</exception>
            <exception cref="T:System.ArgumentException">Reply buffer size is smaller than the reply data size.</exception>
            <exception cref="T:System.ApplicationException">Reply does not correspond to command (first byte of reply
            should be complement (bitwise NOT) to the first byte of command orred with 0x08).</exception>
            
        </member>
        <member name="P:AForge.Robotics.Lego.RCXBrick.IsConnected">
            <summary>
            Check if connection to RCX brick is established.
            </summary>
            
        </member>
        <member name="T:AForge.Robotics.Lego.RCXBrick.IRTowerType">
            <summary>
            Type of IR tower used for communication with RCX.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.IRTowerType.USB">
            <summary>
            USB IR tower.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.IRTowerType.Serial">
            <summary>
            RS232 IR tower.
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.RCXBrick.SoundType">
            <summary>
            Enumeration of sound type playable by Lego RCX brick.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.Blip">
            <summary>
            Blip sound.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.BeepBeep">
            <summary>
            Double beep spund.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.DownwardTones">
            <summary>
            Downward tones sound.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.UpwardTones">
            <summary>
            Upward tones sound.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.LowBuzz">
            <summary>
            Low buzz sound.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SoundType.FastUpwardTones">
            <summary>
            Fast upward tones sound.
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.RCXBrick.Sensor">
            <summary>
            Enumeration of RCX brick sensor ports.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.Sensor.First">
            <summary>
            First sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.Sensor.Second">
            <summary>
            Second sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.Sensor.Third">
            <summary>
            Third sensor.
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.RCXBrick.SensorType">
            <summary>
            Enumeration of RCX brick sensor types.
            </summary>
            
            <remarks><para>Use <see cref="M:AForge.Robotics.Lego.RCXBrick.SetSensorType(AForge.Robotics.Lego.RCXBrick.Sensor,AForge.Robotics.Lego.RCXBrick.SensorType)"/> method to set RCX sensor's type.</para></remarks>
            
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorType.Raw">
            <summary>
            Raw sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorType.Touch">
            <summary>
            Touch sensor (default mode is boolean).
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorType.Temperatur">
            <summary>
            Temperature sensor (default mode is temperature in °C).
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorType.Light">
            <summary>
            Light sensor (default mode is percentage).
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorType.Rotation">
            <summary>
            Rotation sensor (default mode is angle).
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.RCXBrick.SensorMode">
            <summary>
            Enumeration of RCX brick sensor modes.
            </summary>
            
            <remarks><para>Use <see cref="M:AForge.Robotics.Lego.RCXBrick.SetSensorMode(AForge.Robotics.Lego.RCXBrick.Sensor,AForge.Robotics.Lego.RCXBrick.SensorMode)"/> method to set RCX sensor's mode.</para></remarks>
            
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.Raw">
            <summary>
            Raw mode - value in [0, 1023].
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.Boolean">
            <summary>
            Boolean - either 0 or 1.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.EdgeCount">
            <summary>
            Number of boolean transitions.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.PulseCount">
            <summary>
            Number of boolean transitions divided by two.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.Percentage">
            <summary>
            Raw value scaled to [0, 100].
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.TemperatureC">
            <summary>
            Temperature in °C - 1/10ths of a degree, [-19.8, 69.5].  
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.TemperatureF">
            <summary>
            Temperature in °F - 1/10ths of a degree, [-3.6, 157.1].  
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.SensorMode.Angle">
            <summary>
            Angle - 1/16ths of a rotation, represented as a signed short.
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.RCXBrick.Motor">
            <summary>
            Enumeration of RCX brick motor ports.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.Motor.A">
            <summary>
            Motor A.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.Motor.B">
            <summary>
            Motor B.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.Motor.C">
            <summary>
            Motor C.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.Motor.AB">
            <summary>
            Motors A and B.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.Motor.AC">
            <summary>
            Motors A and C.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.Motor.BC">
            <summary>
            Motors B and C.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.Motor.ABC">
            <summary>
            Motors A, B and C.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.RCXBrick.Motor.All">
            <summary>
            All motors (A, B and C).
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.Internals.SerialCommunication">
            <summary>
            Implementation of serial communication interface with LEGO Mindstorm NXT brick.
            </summary>
            
        </member>
        <member name="T:AForge.Robotics.Lego.Internals.INXTCommunicationInterface">
            <summary>
            Interface, which wraps communication functions with Lego Mindstorms NXT brick.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.Connect">
            <summary>
            Connect to NXT brick.
            </summary>
            
            <returns>Returns <b>true</b> if connection was established successfully or <b>false</b>
            otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.Disconnect">
            <summary>
            Disconnect from NXT brick.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.SendMessage(System.Byte[])">
            <summary>
            Send message to NXT brick over the communication interface.
            </summary>
            
            <param name="message">Buffer containing the message to send.</param>
            
            <returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
            otherwise.</returns>
            
            <remarks>This method assumes that message starts from the start of the
            specified buffer and occupies entire buffer.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.SendMessage(System.Byte[],System.Int32)">
            <summary>
            Send message to NXT brick over the communication interface.
            </summary>
            
            <param name="message">Buffer containing the message to send.</param>
            <param name="length">Length of the message to send.</param>
            
            <returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
            otherwise.</returns>
            
            <remarks>This method assumes that message starts from the start of the
            specified buffer.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.SendMessage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Send message to NXT brick over the communication interface.
            </summary>
            
            <param name="message">Buffer containing the message to send.</param>
            <param name="offset">Offset of the message in the buffer.</param>
            <param name="length">Length of the message to send.</param>
            
            <returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
            otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.ReadMessage(System.Byte[],System.Int32@)">
            <summary>
            Read message from NXT brick over the communication interface.
            </summary>
            
            <param name="buffer">Buffer to use for message reading.</param>
            <param name="length">On successful return the variable keeps message length.</param>
            
            <returns>Returns <b>true</b> if message was read successfully or <b>false</b>
            otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.ReadMessage(System.Byte[],System.Int32,System.Int32@)">
            <summary>
            Read message from NXT brick over the communication interface.
            </summary>
            
            <param name="buffer">Buffer to use for message reading.</param>
            <param name="offset">Offset in the buffer for message.</param>
            <param name="length">On successful return the variable keeps message length.</param>
            
            <returns>Returns <b>true</b> if message was read successfully or <b>false</b>
            otherwise.</returns>
            
        </member>
        <member name="P:AForge.Robotics.Lego.Internals.INXTCommunicationInterface.IsConnected">
            <summary>
            Get connection status.
            </summary>
            
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.SerialCommunication.MaxMessageSize">
            <summary>
            Maximum message size, which can be sent over this communication interface to NXT
            brick.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.Internals.SerialCommunication"/> class.
            </summary>
            
            <param name="portName">Serial port name to use for communication.</param>
            
            <remarks>This constructor initializes serial port with default write and read
            timeout values, which are 1000 milliseconds.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.#ctor(System.String,System.Int32,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.Internals.SerialCommunication"/> class.
            </summary>
            
            <param name="portName">Serial port name to use for communication.</param>
            <param name="writeTimeout">Timeout value used for write operations.</param>
            <param name="readTimeout">Timeout value used for read operations.</param>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.Connect">
            <summary>
            Connect to NXT brick.
            </summary>
            
            <returns>Returns <b>true</b> if connection was established successfully or <b>false</b>
            otherwise.</returns>
            
            <remarks>If communication interface was connected before the call, existing connection will be reused.
            If it is required to force reconnection, then <see cref="M:AForge.Robotics.Lego.Internals.SerialCommunication.Disconnect"/> method should be called before.
            </remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.Disconnect">
            <summary>
            Disconnect from NXT brick.
            </summary>
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.SendMessage(System.Byte[])">
            <summary>
            Send message to NXT brick over the communication interface.
            </summary>
            
            <param name="message">Buffer containing the message to send.</param>
            
            <returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
            otherwise.</returns>
            
            <remarks>This method assumes that message starts from the start of the
            specified buffer and occupies entire buffer.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.SendMessage(System.Byte[],System.Int32)">
            <summary>
            Send message to NXT brick over the communication interface.
            </summary>
            
            <param name="message">Buffer containing the message to send.</param>
            <param name="length">Length of the message to send.</param>
            
            <returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
            otherwise.</returns>
            
            <remarks>This method assumes that message starts from the start of the
            specified buffer.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.SendMessage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Send message to NXT brick over the communication interface.
            </summary>
            
            <param name="message">Buffer containing the message to send.</param>
            <param name="offset">Offset of the message in the buffer.</param>
            <param name="length">Length of the message to send.</param>
            
            <returns>Returns <b>true</b> if message was sent successfully or <b>false</b>
            otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.ReadMessage(System.Byte[],System.Int32@)">
            <summary>
            Read message from NXT brick over the communication interface.
            </summary>
            
            <param name="buffer">Buffer to use for message reading.</param>
            <param name="length">On successful return the variable keeps message length.</param>
            
            <returns>Returns <b>true</b> if message was read successfully or <b>false</b>
            otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.SerialCommunication.ReadMessage(System.Byte[],System.Int32,System.Int32@)">
            <summary>
            Read message from NXT brick over the communication interface.
            </summary>
            
            <param name="buffer">Buffer to use for message reading.</param>
            <param name="offset">Offset in the buffer for message.</param>
            <param name="length">On successful return the variable keeps message length.</param>
            
            <returns>Returns <b>true</b> if message was read successfully or <b>false</b>
            otherwise.</returns>
            
        </member>
        <member name="P:AForge.Robotics.Lego.Internals.SerialCommunication.PortName">
            <summary>
            Serial port name used for communication.
            </summary>
            
        </member>
        <member name="P:AForge.Robotics.Lego.Internals.SerialCommunication.IsConnected">
            <summary>
            Get connection status.
            </summary>
            
        </member>
        <member name="T:AForge.Robotics.Lego.Internals.GhostAPI">
            <summary>
            GhostAPI wrapper class.
            </summary>
            
            <remarks><para>GhostAPI is a library provided by Lego, to communicate with its
            RCX robotics kit.</para></remarks>
            
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.GhostAPI.PBKERR_SEVERITYBITS">
            <summary>
            Mask of severity bits.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.GhostAPI.PBKERR_SEVERITY_SUCCESS">
            <summary>
            Success severity.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.GhostAPI.PBKERR_SEVERITY_INFORMATIONAL">
            <summary>
            Informational severity.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.GhostAPI.PBKERR_SEVERITY_WARNING">
            <summary>
            Warning severity.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.GhostAPI.PBKERR_SEVERITY_ERROR">
            <summary>
            Error severity.
            </summary>
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhCreateStack(System.String,System.String,System.String,System.IntPtr@)">
            <summary>
            Creates Ghost communication stack.
            </summary>
            
            <param name="port">Port implementation required.</param>
            <param name="protocol">Protocol implementation required.</param>
            <param name="session">Session implementation required.</param>
            <param name="stack">Stack handle created by this function.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhSelectFirstDevice(System.IntPtr,System.Text.StringBuilder,System.Int32)">
            <summary>
            Finds and selects the first available device.
            </summary>
            
            <param name="stack">Stack handle.</param>
            <param name="deviceName">Buffer, which will be filled with the name of the selected port device.</param>
            <param name="bufferSize">Size of the specified buffer.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhOpen(System.IntPtr)">
            <summary>
            Opens the currently selected device.
            </summary>
            
            <param name="stack">Handle of the stack to be opened.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhClose(System.IntPtr)">
            <summary>
            Closes the currently selected device.
            </summary>
            
            <param name="stack">Handle of the stack to be closed.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhSetInterleave(System.IntPtr,System.Int32,System.Int32)">
            <summary>
            Sets the current command interleave between the execute and download queue.
            </summary>
            
            <param name="stack">Stack handle.</param>
            <param name="interleaveExecute">Number of immediate command blocks.</param>
            <param name="interleaveDownload">Number of download slices.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhSetWaitMode(System.IntPtr,System.IntPtr)">
            <summary>
            Set the current notification mode to WAIT.
            </summary>
            
            <param name="stack">Stack handle.</param>
            <param name="notify">Must be <b>IntPtr.Zero</b> - no callback function.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhCreateCommandQueue(System.IntPtr@)">
            <summary>
            Creates a command queue (containing one command to start with) and return handle.
            </summary>
            
            <param name="queue">Queue handle created by this function.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhDestroyCommandQueue(System.IntPtr)">
            <summary>
            Releases a command queue.
            </summary>
            
            <param name="queue">Queue handle.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhAppendCommand(System.IntPtr,System.Byte[],System.Int32,System.Int32)">
            <summary>
            Appends a command to the given command queue.
            </summary>
            
            <param name="queue"> Queue handle.</param>
            <param name="commandData">Command buffer (command + parameters).</param>
            <param name="commandLen">Length of the command buffer.</param>
            <param name="expectedReplyLen">Length of the expected reply to this command.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhExecute(System.IntPtr,System.IntPtr)">
            <summary>
            Submits a command queue on the EXECUTE queue.
            </summary>
            
            <param name="stack">Stack handle.</param>
            <param name="queue">Queue handle.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhGetFirstCommand(System.IntPtr,System.IntPtr@)">
            <summary>
            Gets the first command in the queue.
            </summary>
            <param name="queue">Queue handle.</param>
            <param name="command">Retrieved command handle.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhGetCommandReplyLen(System.IntPtr,System.UInt32@)">
            <summary>
            Gets command reply length.
            </summary>
            
            <param name="command">Command handle.</param>
            <param name="replyLen">Reply length.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.GhGetCommandReply(System.IntPtr,System.Byte[],System.UInt32)">
            <summary>
            Gets command reply.
            </summary>
            
            <param name="command">Command handle.</param>
            <param name="replyData">Buffer for reply data.</param>
            <param name="bufSize">Buffer size.</param>
            
            <returns>GhostAPI error code.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.PBK_IS_SUCCESS(System.UInt32)">
            <summary>
            Checks if return value has success severity.
            </summary>
            
            <param name="e">Error return value.</param>
            
            <returns>True if the return value has success severity.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.PBK_IS_INFO(System.UInt32)">
            <summary>
            Checks if return value has info severity.
            </summary>
            
            <param name="e">Error return value.</param>
            
            <returns>True if the return value has info severity.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.PBK_IS_WARNING(System.UInt32)">
            <summary>
            Checks if return value has warning severity.
            </summary>
            
            <param name="e">Error return value.</param>
            
            <returns>True if the return value has warning severity.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.PBK_IS_ERROR(System.UInt32)">
            <summary>
            Checks if return value has error severity.
            </summary>
            
            <param name="e">Error return value.</param>
            
            <returns>True if the return value has error severity.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.Internals.GhostAPI.PBK_SUCCEEDED(System.UInt32)">
            <summary>
            Checks for successful return code, which has success or info severity.
            </summary>
            
            <param name="e">Error return value.</param>
            
            <returns>True if return value is successful.</returns>
            
        </member>
        <member name="T:AForge.Robotics.Lego.NXTBrick">
            <summary>
            Manipulation of Lego Mindstorms NXT device.
            </summary>
            
            <remarks>
            <para>The class allows to manipulate with Lego Mindstorms NXT device,
            setting/getting its motors' state, getting information about sensors'
            values and retrieving generic information about the NXT brick.</para>
            <para><img src="img/robotics/nxt.jpg" width="250" height="201" /></para>
            
            <para><note>Only communication through Bluetooth (virtual serial port) is supported at this point.</note></para>
            
            <para>Sample usage:</para>
            <code>
            // create an instance of NXT brick
            NXTBrick nxt = new NXTBrick( );
            // connect to the device
            if ( nxt.Connect( "COM8" ) )
            {
                // run motor A
                NXTBrick.MotorState motorState = new NXTBrick.MotorState( );
            
                motorState.Power      = 70;
                motorState.TurnRatio  = 50;
                motorState.Mode       = NXTBrick.MotorMode.On;
                motorState.Regulation = NXTBrick.MotorRegulationMode.Idle;
                motorState.RunState   = NXTBrick.MotorRunState.Running;
                motorState.TachoLimit = 1000;
            
                nxt.SetMotorState( NXTBrick.Motor.A, motorState );
            
                // get input value from the first sensor
                NXTBrick.SensorValues sensorValues;
            
                if ( nxt.GetSensorValue( NXTBrick.Sensor.First, out sensorValues ) )
                {
                    // ...
                }
                // ...
            }
            </code>
            </remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.NXTBrick"/> class.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.Finalize">
            <summary>
            Destroys the instance of the <see cref="T:AForge.Robotics.Lego.NXTBrick"/> class.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.Connect(System.String)">
            <summary>
            Connect to NXT brick.
            </summary>
            
            <param name="portName">Serial port name to use for communication, for example COM1.</param>
            
            <returns>Returns <b>true</b> on successful connection or <b>false</b>
            otherwise.</returns>
            
            <remarks>If connection to NXT brick was established before the call, existing connection will be reused.
            If it is required to force reconnection, then <see cref="M:AForge.Robotics.Lego.NXTBrick.Disconnect"/> method should be called before.
            </remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.Disconnect">
            <summary>
            Disconnect from Lego NXT brick.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.IsAlive">
            <summary>
            Check if the NXT brick is alive and responds to messages.
            </summary>
            
            <returns>Returns <b>true</b> if device is alive or <b>false</b> otherwise.</returns>
            
            <remarks>The command also keeps NXT brick alive preventing it from sleep.</remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.PlayTone(System.Int16,System.Int16)">
            <summary>
            Play tone of specified frequency.
            </summary>
            
            <param name="frequency">Tone frequency in Hz.</param>
            <param name="duration">Tone duration in milliseconds.</param>
            
            <returns>Returns <b>true</b> if device is alive or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.PlayTone(System.Int16,System.Int16,System.Boolean)">
            <summary>
            Play tone of specified frequency.
            </summary>
            
            <param name="frequency">Tone frequency in Hz.</param>
            <param name="duration">Tone duration in milliseconds.</param>
            <param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
            
            <returns>Returns <b>true</b> if device is alive or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.GetVersion(System.String@,System.String@)">
             <summary>
             Get firmware version of NXT brick.
             </summary>
             
             <param name="protocolVersion">Protocol version number.</param>
             <param name="firmwareVersion">Firmware version number.</param>
             
             <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.GetDeviceInformation(System.String@,System.Byte[]@,System.Int32@,System.Int32@)">
             <summary>
             Get information about NXT device.
             </summary>
             
             <param name="deviceName">Device name.</param>
             <param name="btAddress">Bluetooth address.</param>
             <param name="btSignalStrength">Bluetooth signal strength.</param>
             <param name="freeUserFlash">Free user Flash.</param>
             
             <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.GetBatteryPower(System.Int32@)">
            <summary>
            Get battery power of NXT brick.
            </summary>
            
            <param name="power">NXT brick's battery power in millivolts.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.SetBrickName(System.String)">
            <summary>
            Set name of NXT device.
            </summary>
            
            <param name="deviceName">Device name to set for the brick.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.ResetMotorPosition(AForge.Robotics.Lego.NXTBrick.Motor,System.Boolean)">
             <summary>
             Reset motor's position.
             </summary>
             
             <param name="motor">Motor to reset.</param>
             <param name="relative">Specifies if relative (to last movement) or absolute motor's
             position should reset.</param>
            
             <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
             
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.ResetMotorPosition(AForge.Robotics.Lego.NXTBrick.Motor,System.Boolean,System.Boolean)">
             <summary>
             Reset motor's position.
             </summary>
             
             <param name="motor">Motor to reset.</param>
             <param name="relative">Specifies if relative (to last movement) or absolute motor's
             position should reset.</param>
             <param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
            
             <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
             
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.SetMotorState(AForge.Robotics.Lego.NXTBrick.Motor,AForge.Robotics.Lego.NXTBrick.MotorState)">
            <summary>
            Set motor state.
            </summary>
            
            <param name="motor">Motor to set state for.</param>
            <param name="state">Motor's state to set.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.SetMotorState(AForge.Robotics.Lego.NXTBrick.Motor,AForge.Robotics.Lego.NXTBrick.MotorState,System.Boolean)">
            <summary>
            Set motor state.
            </summary>
            
            <param name="motor">Motor to set state for.</param>
            <param name="state">Motor's state to set.</param>
            <param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.GetMotorState(AForge.Robotics.Lego.NXTBrick.Motor,AForge.Robotics.Lego.NXTBrick.MotorState@)">
            <summary>
            Get motor state.
            </summary>
            
            <param name="motor">Motor to get state for.</param>
            <param name="state">Motor's state.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode)">
            <summary>
            Set sensor's type and mode.
            </summary>
            
            <param name="sensor">Sensor to set type of.</param>
            <param name="type">Sensor's type.</param>
            <param name="mode">Sensor's mode.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode,System.Boolean)">
            <summary>
            Set sensor's type and mode.
            </summary>
            
            <param name="sensor">Sensor to set type of.</param>
            <param name="type">Sensor's type.</param>
            <param name="mode">Sensor's mode.</param>
            <param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.GetSensorValue(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorValues@)">
            <summary>
            Get sensor's values.
            </summary>
            
            <param name="sensor">Sensor to get values of.</param>
            <param name="sensorValues">etrieved sensor's values.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.ClearSensor(AForge.Robotics.Lego.NXTBrick.Sensor)">
            <summary>
            Clear sensor's scaled value. 
            </summary>
            
            <param name="sensor">Sensor to clear value of.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.ClearSensor(AForge.Robotics.Lego.NXTBrick.Sensor,System.Boolean)">
            <summary>
            Clear sensor's scaled value. 
            </summary>
            
            <param name="sensor">Sensor to clear value of.</param>
            <param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.LsGetStatus(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)">
            <summary>
            Get status of Low Speed bus.
            </summary>
            
            <param name="sensor">Sensor to get the status from.</param>
            <param name="readyBytes">Number of bytes that are ready to be read from the bus.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32)">
            <summary>
            Write to Low Speed bus.
            </summary>
            
            <param name="sensor">Sensor to write to.</param>
            <param name="data">Data to send to the I2C device.</param>
            <param name="expectedBytes">Number of bytes expected from device on reply, [0..16].
            Can be set to zero if I2C command does not suppose any reply.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
            <exception cref="T:System.ArgumentException">Data length must be in the [1..16] range.</exception>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32,System.Boolean)">
            <summary>
            Write to Low Speed bus.
            </summary>
            
            <param name="sensor">Sensor to write to.</param>
            <param name="data">Data to send to the I2C device.</param>
            <param name="expectedBytes">Number of bytes expected from device on reply, [0..16].
            Can be set to zero if I2C command does not suppose any reply.</param>
            <param name="waitReply">Wait reply from NXT (safer option) or not (faster option).</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
            <exception cref="T:System.ArgumentException">Data length must be in the [1..16] range.</exception>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.LsRead(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32@)">
            <summary>
            Read data from Low Speed bus.
            </summary>
            
            <param name="sensor">Sensor to read data from.</param>
            <param name="readValues">Array to read data to.</param>
            <param name="bytesRead">Bytes actually read from I2C device.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.GetUltrasonicSensorsValue(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)">
            <summary>
            Read value of ultrasonic distance sensor.
            </summary>
            
            <param name="sensor">Sensor to read value from.</param>
            <param name="value">Distance value obtained from ultrasonic sensor, [0..255] cm.</param>
            
            <returns>Returns <b>true</b> if command was executed successfully or <b>false</b> otherwise.</returns>
            
            <remarks><para>The method retrieves value of ultrasonic distance sensor by
            communicating with I2C device (writing to and reading from low speed bus).
            The method first sends { 0x02, 0x42 } command to the specified device using
            <see cref="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32)"/> method. Then it waits until there is something available
            to read using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsGetStatus(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)"/> method. Finally it reads sensor's value
            using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsRead(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32@)"/> device. See
            <a href="http://hsrc.static.net/Research/NXT%20I2C%20Communication/">this page</a>
            for details.</para>
            
            <para><note>Before using this method it is required to use
            <see cref="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode,System.Boolean)"/> method to set sensor's type to
            <see cref="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed9V"/> mode. It should be done
            once after NXT brick is powered on. If sensor's type is not set properly,
            the method will generate an exception. Also after setting sensor's
            type application may need to wait a bit to give device some time
            to initialize.</note></para>
            </remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.SendCommand(System.Byte[],System.Byte[])">
            <summary>
            Send command to Lego NXT brick and read reply.
            </summary>
            
            <param name="command">Command to send.</param>
            <param name="reply">Buffer to receive reply into.</param>
            
            <returns>Returns <b>true</b> if the command was sent successfully and reply was
            received, otherwise <b>false</b>.</returns>
            
            <exception cref="T:System.NullReferenceException">Communication can not be performed, because connection with
            NXT brick was not established yet.</exception>
            <exception cref="T:System.ArgumentException">Reply buffer size is smaller than the reply data size.</exception>
            <exception cref="T:System.ApplicationException">Reply does not correspond to command (second byte of reply should
            be equal to second byte of command).</exception>
            <exception cref="T:System.ApplicationException">Error occurred on NXT brick side.</exception>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.ReadHiTechnicColorSensor(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@,System.Int32@,System.Int32@,System.Int32@)">
            <summary>
            Read data from HiTechnic color sensor (also color sensor v2).
            </summary>
            
            <param name="sensor">Sensor to read from.</param>
            <param name="colorNumber"><a href="http://www.hitechnic.com/contents/media/Color%20Number.jpg">Found color number.</a></param>
            <param name="redValue">Found red value.</param>
            <param name="greenValue">Found green value.</param>
            <param name="blueValue">Found blue value.</param>
            
            <returns>Returns <b>true</b> if the command was sent successfully and reply was
            received, otherwise <b>false</b>.</returns>
            
            <remarks><para>The method retrieves the color valuse of a <a href="http://www.hitechnic.com/products/">HiTechnic color sensor</a>
            by communicating with I2C device (writing to and reading from low speed bus).
            The method first sends { 0x02, 0x42 } command to the specified device using
            <see cref="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32)"/> method. Then it waits until there is something available
            to read using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsGetStatus(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)"/> method. Finally it reads sensor's value
            using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsRead(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32@)"/> device. See
            <a href="http://hsrc.static.net/Research/NXT%20I2C%20Communication/">this page</a>
            for details.</para>
            
            <para><note>Before using this method it is required to use
            <see cref="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode,System.Boolean)"/> method to set sensor's type to
            <see cref="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed"/> mode. It should be done
            once after NXT brick is powered on. If sensor's type is not set properly,
            the method will generate an exception. Also after setting sensor's
            type application may need to wait a bit to give device some time
            to initialize.</note></para>
            
            <para><note>NXT Firmware version 1.24 must be loaded in the NXT for the HiTechnic color sensor to operate correctly.
            You can check the firmware version using the <see cref="M:AForge.Robotics.Lego.NXTBrick.GetVersion(System.String@,System.String@)"/> method.</note></para>
            
            <para><note>The color sensor V2 must be configured to match the mains electricity frequency for your
            country. Details on how to configure the Color Sensor V2 can be found at
            <a href="http://www.hitechnic.com/colorsensor"></a></note></para>
            </remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.ReadHiTechnicCompassSensor(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)">
            <summary>
            Read data from HiTechnic compass sensor.
            </summary>
            
            <param name="sensor">Sensor to read from.</param>
            <param name="angle">The magnetic heading, [0, 359] degrees.</param>
            
            <returns>Returns <b>true</b> if the command was sent successfully and reply was
            received, otherwise <b>false</b>.</returns>
            
            <remarks><para>The method retrieves the angle of a <a href="http://www.hitechnic.com/products/">
            HiTechnic compass sensor</a> by
            communicating with I2C device (writing to and reading from low speed bus).
            The method first sends { 0x02, 0x42 } command to the specified device using
            <see cref="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32)"/> method. Then it waits until there is something available
            to read using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsGetStatus(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)"/> method. Finally it reads sensor's value
            using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsRead(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32@)"/> device. See
            <a href="http://hsrc.static.net/Research/NXT%20I2C%20Communication/">this page</a>
            for details.</para>
            
            <para><note>Before using this method it is required to use
            <see cref="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode,System.Boolean)"/> method to set sensor's type to
            <see cref="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed"/> mode. It should be done
            once after NXT brick is powered on. If sensor's type is not set properly,
            the method will generate an exception. Also after setting sensor's
            type application may need to wait a bit to give device some time
            to initialize.</note></para>
            
            <para><note>The HiTechnic compass sensor will only operate correctly in a horizontal plane so you must keep the compass
            level for it to read correctly. This is very important so remember this when you build it into your robot.
            It is highly desirable to mount the compass at least 6 inches (15cm) away from the motors and 4 inches (10cm) away from the NXT brick
            itself. Try to make sure it is firmly mounted, if it bounces around, the readings may bounce around too.
            </note></para>
            
            <para><note>NXT Firmware version 1.03 must be loaded in the NXT for the compass to operate correctly. You can check the firmware version
            using the <see cref="M:AForge.Robotics.Lego.NXTBrick.GetVersion(System.String@,System.String@)"/> method.</note></para>
            </remarks>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.ReadHiTechnicAccelerationTiltSensor(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@,System.Int32@,System.Int32@)">
             <summary>
             Read data from HiTechnic acceleration/tilt sensor. The HiTechnic accelerometer/tilt sensor measures acceleration in 
             three axes. It measures also tilt along each axis. Using the sensor, you can measure the acceleration of your robot in the range
             of -2g to 2g.
             </summary>
             
             <param name="sensor">Sensor to read from.</param>
             <param name="xAceeleration">Acceleration in X direction, with a scaling of approximately 200 counts per g.</param>
             <param name="yAceeleration">Acceleration in Y direction, with a scaling of approximately 200 counts per g.</param>
             <param name="zAceeleration">Acceleration in Z direction, with a scaling of approximately 200 counts per g.</param>
             
             <returns>Returns <b>true</b> if the command was sent successfully and reply was
             received, otherwise <b>false</b>.</returns>
             
             <remarks><para>The method retrieves the acceleration in three directions of a
             <a href="http://www.hitechnic.com/products/"> HiTechnic acceleration/tilt sensor</a> by
             communicating with I2C device (writing to and reading from low speed bus).
             The method first sends { 0x02, 0x42 } command to the specified device using
             <see cref="M:AForge.Robotics.Lego.NXTBrick.LsWrite(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32)"/> method. Then it waits until there is something available
             to read using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsGetStatus(AForge.Robotics.Lego.NXTBrick.Sensor,System.Int32@)"/> method. Finally it reads sensor's value
             using <see cref="M:AForge.Robotics.Lego.NXTBrick.LsRead(AForge.Robotics.Lego.NXTBrick.Sensor,System.Byte[],System.Int32@)"/> device. See
             <a href="http://hsrc.static.net/Research/NXT%20I2C%20Communication/">this page</a>
             for details.</para>
             
             <para><note>Before using this method it is required to use
             <see cref="M:AForge.Robotics.Lego.NXTBrick.SetSensorMode(AForge.Robotics.Lego.NXTBrick.Sensor,AForge.Robotics.Lego.NXTBrick.SensorType,AForge.Robotics.Lego.NXTBrick.SensorMode,System.Boolean)"/> method to set sensor's type to
             <see cref="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed"/> mode. It should be done
             once after NXT brick is powered onq If sensor's type is not set properly,
             the method will generate an exception. Also after setting sensor's
             type application may need to wait a bit to give device some time
             to initialize.</note></para>
             
             <para>The acceleration sensor can also be used to measure tilt in three axes This is possible because gravity is perceived
             as acceleration. When the sensor is stationary and in the normal horizontal position, the x and y axis will be near 
             zero, because they are horizontal, while the z axis will be near 200, which represents g. If you tilt the sensor then 
             gravity will also be detected on the other axis and the value for the z axis will go down. Since gravity is distributed
             among the three component vectors, the tilt of the sensor can be determined.</para>
            
             <para><note>NXT Firmware version 1.05 or later must be loaded in the NXT for the acceleration/tilt sensor and other digital I2C
             sensors to operate correctly. You can check the firmware version using the <see cref="M:AForge.Robotics.Lego.NXTBrick.GetVersion(System.String@,System.String@)"/> method.</note></para>
             </remarks>
             
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.IsConnected">
            <summary>
            Check if connection to NXT brick is established.
            </summary>
            
        </member>
        <member name="E:AForge.Robotics.Lego.NXTBrick.MessageSent">
            <summary>
            The event is raised every time a command is sent successfully.
            </summary>
            
        </member>
        <member name="E:AForge.Robotics.Lego.NXTBrick.MessageRead">
            <summary>
            The event is raised every time a command is read successfully.
            </summary>
            
        </member>
        <member name="T:AForge.Robotics.Lego.NXTBrick.Sensor">
            <summary>
            Enumeration of NXT brick sensor ports.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.Sensor.First">
            <summary>
            First sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.Sensor.Second">
            <summary>
            Second sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.Sensor.Third">
            <summary>
            Third sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.Sensor.Fourth">
            <summary>
            Fourth sensor.
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.NXTBrick.SensorType">
            <summary>
            Enumeration of NXT brick sensor types.
            </summary>
            
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.NoSensor">
            <summary>
            No sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Switch">
            <summary>
            NXT or Legacy touch sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Temperature">
            <summary>
            Legacy temperature sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Reflection">
            <summary>
            Legacy light sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Angle">
            <summary>
            Legacy rotation sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.LightActive">
            <summary>
            NXT light sensor with floodlight enabled.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.LightInactive">
            <summary>
            NXT light sensor with floodlight disabled.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.SoundDB">
            <summary>
            NXT sound sensor (dB scaling).
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.SoundDBA">
            <summary>
            NXT sound sensor (dBA scaling).
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Custom">
            <summary>
            Unused
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed">
            <summary>
            I2C digital sensor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Lowspeed9V">
            <summary>
            I2C digital sensor (9V power).
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.Highspeed">
            <summary>
            Unused.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorFull">
            <summary>
            NXT 2.0 color sensor in color detector mode.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorRed">
            <summary>
            NXT 2.0 color sensor in light sensor mode with red light on.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorGreen">
            <summary>
            NXT 2.0 color sensor in light sensor mode with green light on.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorBlue">
            <summary>
            NXT 2.0 color sensor in light sensor mode with blue light on.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorNone">
            <summary>
            NXT 2.0 color sensor in light sensor mode without light.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorType.ColorExit">
            <summary>
            NXT 2.0 color sensor internal state (no functionality known yet).
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.NXTBrick.SensorMode">
            <summary>
            Enumeration of NXT brick sensor modes.
            </summary>
            
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.Raw">
            <summary>
            Raw mode.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.Boolean">
            <summary>
            Boolean mode. Report scaled value as 1 (TRUE) or 0 (FALSE). The firmware uses
            inverse Boolean logic to match the physical characteristics of NXT sensors. Readings
            are FALSE if raw value exceeds 55% of total range; reading are TRUE if raw value
            is less than 45% of total range.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.TransitionCounter">
            <summary>
            Report scaled value as number of transition between TRUE and FALSE.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.PeriodicCounter">
            <summary>
            Report scaled value as number of transitions from FALSE to TRUE, then back to FALSE.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.PCTFullScale">
            <summary>
            Report scaled value as percentage of full scale reading for configured sensor type.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.Celsius">
            <summary>
            Scale terperature reading to degrees Celsius.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.Fahrenheit">
            <summary>
            Scale terperature reading to degrees Fahrenheit.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.SensorMode.AngleSteps">
            <summary>
            Report scaled value as count of ticks on RCX-style rotation sensor.
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.NXTBrick.SensorValues">
            <summary>
            Class describing sensor's values received from NXT brick's sensor port.
            </summary>
            
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.IsValid">
            <summary>
            Specifies if data value should be treated as valid data.
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.IsCalibrated">
            <summary>
            Specifies if calibration file was found and used for <see cref="P:AForge.Robotics.Lego.NXTBrick.SensorValues.Calibrated"/>
            field calculation.
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.SensorType">
            <summary>
            Sensor type.
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.SensorMode">
            <summary>
            Sensor mode.
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.Raw">
            <summary>
            Raw A/D value (device dependent).
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.Normalized">
            <summary>
            Normalized A/D value (sensor type dependent), [0, 1023].
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.Scaled">
            <summary>
            Scaled value (sensor mode dependent).
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.SensorValues.Calibrated">
            <summary>
            Value scaled according to calibration.
            </summary>
            
            <remarks><note>According to Lego notes the value is currently unused.</note></remarks>
            
        </member>
        <member name="T:AForge.Robotics.Lego.NXTBrick.Motor">
            <summary>
            Enumeration of NXT brick motor ports.
            </summary>
            
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.Motor.A">
            <summary>
            Motor A.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.Motor.B">
            <summary>
            Motor B.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.Motor.C">
            <summary>
            Motor C.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.Motor.All">
            <summary>
            All motors (A, B and C).
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.NXTBrick.MotorMode">
            <summary>
            Enumeration of supported motor modes.
            </summary>
            
            <remarks>Motor mode is a bit field, so several modes can be combined.</remarks>
            
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.MotorMode.None">
            <summary>
            Mode is not set.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.MotorMode.On">
            <summary>
            Turn on the motor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.MotorMode.Brake">
            <summary>
            Brake.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.MotorMode.Regulated">
            <summary>
            Turn on regulated mode.
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.NXTBrick.MotorRegulationMode">
            <summary>
            Enumeration of motor regulation modes.
            </summary>
            
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.MotorRegulationMode.Idle">
            <summary>
            No regulation will be enabled.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.MotorRegulationMode.Speed">
            <summary>
            Power control will be enabled on specified motor.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.MotorRegulationMode.Sync">
            <summary>
            Synchronization will be enabled.
            </summary>
            
            <remarks><note>Synchronization need to be enabled on two motors.</note></remarks>
            
        </member>
        <member name="T:AForge.Robotics.Lego.NXTBrick.MotorRunState">
            <summary>
            Enumeration of motor run states.
            </summary>
            
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.MotorRunState.Idle">
            <summary>
            Motor will be idle.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.MotorRunState.RampUp">
            <summary>
            Motor will ramp-up.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.MotorRunState.Running">
            <summary>
            Motor will be running.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.NXTBrick.MotorRunState.RampDown">
            <summary>
            Motor will ramp-down.
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.NXTBrick.MotorState">
            <summary>
            Class describing motor's state.
            </summary>
            
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.MotorState.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.NXTBrick.MotorState"/> class.
            </summary>
        </member>
        <member name="M:AForge.Robotics.Lego.NXTBrick.MotorState.#ctor(System.Int32,System.Int32,AForge.Robotics.Lego.NXTBrick.MotorMode,AForge.Robotics.Lego.NXTBrick.MotorRegulationMode,AForge.Robotics.Lego.NXTBrick.MotorRunState,System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:AForge.Robotics.Lego.NXTBrick.MotorState"/> class.
            </summary>
            
            <param name="power">Power, [-100, 100].</param>
            <param name="turnRatio">Turn ratio, [-100, 100].</param>
            <param name="mode">Mode (bit field).</param>
            <param name="regulation">Regulation mode.</param>
            <param name="runState">Run state.</param>
            <param name="tachoLimit">The value determines motor's run limit.</param>
            
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.Power">
            <summary>
            Power, [-100, 100].
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.TurnRatio">
            <summary>
            Turn ratio, [-100, 100].
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.Mode">
            <summary>
            Mode (bit field).
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.Regulation">
            <summary>
            Regulation mode.
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.RunState">
            <summary>
            Run state.
            </summary>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.TachoLimit">
            <summary>
            Tacho limit (0 - run forever).
            </summary>
            
            <remarks>The value determines motor's run limit.</remarks>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.TachoCount">
            <summary>
            Number of counts since last reset of motor counter.
            </summary>
            
            <remarks><note>The value is ignored when motor's state is set. The value is
            provided when motor's state is retrieved.</note></remarks>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.BlockTachoCount">
            <summary>
            Current position relative to last programmed movement.
            </summary>
            
            <remarks><note>The value is ignored when motor's state is set. The value is
            provided when motor's state is retrieved.</note></remarks>
        </member>
        <member name="P:AForge.Robotics.Lego.NXTBrick.MotorState.RotationCount">
            <summary>
            Current position relative to last reset of motor's rotation sensor.
            </summary>
            
            <remarks><note>The value is ignored when motor's state is set. The value is
            provided when motor's state is retrieved.</note></remarks>
        </member>
        <member name="T:AForge.Robotics.Lego.Internals.NXTCommandType">
            <summary>
            Enumeration of command types supported by Lego Mindstorms NXT brick.
            </summary>
            
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTCommandType.DirectCommand">
            <summary>
            Direct command, which requires reply.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTCommandType.SystemCommand">
            <summary>
            System command, which requires reply.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTCommandType.ReplyCommand">
            <summary>
            Reply command received from NXT brick.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTCommandType.DirectCommandWithoutReply">
            <summary>
            Direct command, which does not require reply.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTCommandType.SystemCommandWithoutReply">
            <summary>
            System command, which does not require reply.
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.Internals.NXTSystemCommand">
            <summary>
            Enumeration of system commands supported by Lego Mindstorms NXT brick.
            </summary>
            
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTSystemCommand.GetFirmwareVersion">
            <summary>
            Get firmware version of NXT brick.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTSystemCommand.SetBrickName">
            <summary>
            Set NXT brick name.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTSystemCommand.GetDeviceInfo">
            <summary>
            Get device information.
            </summary>
        </member>
        <member name="T:AForge.Robotics.Lego.Internals.NXTDirectCommand">
            <summary>
            Enumeration of direct commands supported by Lego Mindstorms NXT brick.
            </summary>
            
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.KeepAlive">
            <summary>
            Keep NXT brick alive.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.PlayTone">
            <summary>
            Play tone of specified frequency.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.GetBatteryLevel">
            <summary>
            Get battery level.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.SetOutputState">
            <summary>
            Set output state.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.GetOutputState">
            <summary>
            Get output state.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.ResetMotorPosition">
            <summary>
            Reset motor position.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.SetInputMode">
            <summary>
            Set input mode.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.GetInputValues">
            <summary>
            Get input values.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.LsGetStatus">
            <summary>
            Get status of the Low Speed bus.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.LsWrite">
            <summary>
            Write to the Low Speed bus.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.LsRead">
            <summary>
            Read from the Low Speed bus.
            </summary>
        </member>
        <member name="F:AForge.Robotics.Lego.Internals.NXTDirectCommand.ResetInputScaledValue">
            <summary>
            Reset input scaled value.
            </summary>
        </member>
    </members>
</doc>
